package it.fantacalcio.test;

import it.fantacalcio.model.Argomento;
import it.fantacalcio.model.Categoria;
import it.fantacalcio.model.Role;
import it.fantacalcio.model.Squadra;
import it.fantacalcio.model.User;
import it.fantacalcio.spring.service.ArgomentoService;
import it.fantacalcio.spring.service.CategoriaService;
import it.fantacalcio.spring.service.MyServiceFactory;
import it.fantacalcio.spring.service.RoleService;
import it.fantacalcio.spring.service.SquadraService;
import it.fantacalcio.spring.service.UserService;

import org.hibernate.HibernateException;

public class generateDB {

	public static void main(String[] args) {
		
		try {
			
// getService
			RoleService roleService = MyServiceFactory.getRoleService();
			UserService userService = MyServiceFactory.getUserService();
			SquadraService squadraService = MyServiceFactory.getSquadraService();
			
// new model
			Role roleAdmin = new Role("amministratore", "ADMIN");
			Role roleUser = new Role("user comune", "USER");
			
			User admin = new User("Alessio", "Canestrelli", "admin", "admin", "SI", roleAdmin);
			User user = new User("Alessandro", "Di Buo", "user", "user", "SI", roleUser);
			
			Squadra barcellona = new Squadra("Barcellona", 1000, admin);
			Squadra roma = new Squadra("Roma", 1000, user);
			
// save
			roleService.salva(roleAdmin);
			roleService.salva(roleUser);
			
			userService.salva(admin);
			userService.salva(user);
			
			squadraService.salva(barcellona);
			squadraService.salva(roma);
			
/***********
 *  FORUM  *
 ***********/
			
// getService
			CategoriaService categoriaService = MyServiceFactory.getCategoriaService();
			ArgomentoService argomentoService = MyServiceFactory.getArgomentoService();
			
// new model
			Categoria regolamento = new Categoria("Regolamento", "Tutte le regole");
			Categoria reclamiSugerimenti = new Categoria("Reclami e suggerimenti", "bhoooooo");
			
			Argomento primeRegole = new Argomento("Prime Regole", "bhooooo", regolamento, admin);
			Argomento reclami = new Argomento("Reclami", "Pagina per i reclami", reclamiSugerimenti, admin);
			Argomento suggerimenti = new Argomento("Suggerimenti", "Pagina per i suggerimenti", reclamiSugerimenti, admin);
			
// save
			categoriaService.salva(regolamento);
			categoriaService.salva(reclamiSugerimenti);
			
			argomentoService.salva(primeRegole);
			argomentoService.salva(reclami);
			
			argomentoService.salva(suggerimenti);
			
		} catch (HibernateException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}
